与number_format函数有关的一个bug?

      最近在做一个模仿excel功能的在线项目。其中有一个功能,数据列表中的数据,到了最后一列都要进行总计。这本来没什么难度。直接从数据库取出数据后,进行foreach相加就行 了。这是如此的简单,以至于用了不到五分钟写就了功能,根本没把脑子带在身上。

     两天后的一次不经意的浏览页面,发现统计的结果不对。于是左思右想,竟然没有发现我的计算有什么逻辑上的bug。但没有bug,最后的计算结果不对,肯定是哪里有问题,只是我现在没有发现而已。

    后来反复输出原始数据,竟然发现,从数据库取出的数据是经过number_format处理过的结果,千分位上加上了逗号,已经变成了一个字符串。相加的时候我还使用了强制类型转换(int)使数字字符串变成int类型,方便相加。

    明白的问题之后,就好采取方法修复bug了。既然是多了一个逗号,那么我们把这个逗号都去掉就好了吧。于是用了str_replace函数,把逗号换成""空字符串。这样自然数据转成了字符串数字,然后再强制转换城int类型。

    最后统计的结果算出来了,数据是很长的一串。非常不便于阅读。于是还要把最后的统计结果还要用number_format来再次千分位加逗号,让统计数据最好让用户理解。

 

 


进入公司即将三个月,也见了大牛们写的代码。结合自己的性格以及习惯,谈谈理解。

首先程序员不是码农,每天从事的工作,不是在和一堆无意义的字符在打交道,程序的工作更像是作家,用文字去写一个故事。

代码的整齐与否,至关最要,我认为在所有要素里,代码是否整齐,是最最重要的。

一篇整整齐齐的代码,先不从理解的角度去看。舒适的排版,得当的留白,清晰明了的注释,会让后续看代码的人感觉到这是一篇用心写作的代码,浮躁的心情也会慢慢沉静下来。

如果连基本的变量等号都不对齐,真只能是糟糕透了。下次就像自己看自己的代码的时候,也觉得恶心。

变量的命名一定要规范。你可以有自己的变量命名规范,如果小组开发中有自己的开发规范,那一定要遵守。

变量的命名尽量采用英文的命名,我使用的是小驼峰命名,即第一个单词小写,第二个单词首字母大写。

肯能我自己做过设计的原因吧,任何一件东西,首先要好看,其次再去谈用着怎么样。

毕竟,代码你每天都要去看他,实在不忍心自己的世界里都是荒乱无序的代码。

愿代码如诗,愿生活如虹。

 

转载于:https://www.cnblogs.com/roverliang/p/4819303.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fastapi 安全性 / APIRouter / BackgroundTasks / 元数据 / 测试调试

文章目录1. 例子2. 获取当前用户3. 使用密码和 Bearer 的简单 OAuth24. 使用(哈希)密码和 JWT Bearer 令牌的 OAuth25. 多个应用文件5.1 APIRouter6. BackgroundTasks7. 元数据7.1 标题、描述和版本7.2 openapi_tags 标签元数据7.3 OpenAPI URL7.4 文档 …

java json path_Java使用JSONPath解析JSON完整内容详解

JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言,如Javascript,Python和PHP,Java。JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的js…

wndows程序设计之书籍知识与代码摘录-封装一个类似printf的messagebox

//----------------------------------------- //本程序展示了如何实现MessageBoxPrintf函数 //本函数能像printf那样格式化输出 //摘录自&#xff1a;《windows程序设计第五版》 //----------------------------------------- #include<windows.h> #include<tchar.h&…

LeetCode 2050. 并行课程 III(拓扑排序)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。 同时给你一个二维整数数组 relations &#xff0c;其中 relations[j] [prevCoursej, nextCoursej] &#xff0c;表示课程 prevCoursej 必须在课程 nextCoursej 之前…

改不改,这是一个问题

概率称号&#xff1a; 给你三盒。里面放的东西。您指定&#xff0c;然后打开了另外两个。发现是空的&#xff0c;要求&#xff1a;你想改变你的选择。 答案是&#xff0c;它应该改变网上评选&#xff0c;这样的概率较大。因此&#xff0c;我要求&#xff0c;空的情况下。选择的…

LeetCode 1521. 找到最接近目标值的函数值(位运算)

文章目录1. 题目2. 解题1. 题目 Winston 构造了一个如上所示的函数 func 。他有一个整数数组 arr 和一个整数 target &#xff0c;他想找到让 |func(arr, l, r) - target| 最小的 l 和 r 。 请你返回 |func(arr, l, r) - target| 的最小值。 请注意&#xff0c; func 的输入参…

LeetCode 2053. 数组中第 K 个独一无二的字符串(哈希)

文章目录1. 题目2. 解题1. 题目 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串。 给你一个字符串数组 arr 和一个整数 k &#xff0c;请你返回 arr 中第 k 个 独一无二的字符串 。 如果 少于 k 个独一无二的字符串&#xff0c;那么返回 空字符串 “” 。 注意…

java 该改变request url_如何在Java中使用servlet过滤器来更改传入的servlet请求URL?...

如何使用servlet过滤器来更改传入的servlet请求URLweb.xml至web.xml&#xff1f;更新&#xff1a;根据BalusC的以下步骤&#xff0c;我想出了以下代码&#xff1a;public class UrlRewriteFilter implements Filter {Overridepublic void init(FilterConfig config) throws Ser…

LeetCode 2055. 蜡烛之间的盘子(前缀和)

文章目录1. 题目2. 解题1. 题目 给你一个长桌子&#xff0c;桌子上盘子和蜡烛排成一列。 给你一个下标从 0 开始的字符串 s &#xff0c;它只包含字符 * 和 | &#xff0c;其中 * 表示一个 盘子 &#xff0c;| 表示一支 蜡烛 。 同时给你一个下标从 0 开始的二维整数数组 que…

Java可靠性测试fit_Java ParagraphVectors.fit方法代码示例

import org.deeplearning4j.models.paragraphvectors.ParagraphVectors; //导入方法依赖的package包/类public static void main(String[] args) throws Exception {ClassPathResource srcFile new ClassPathResource("/raw_sentences.txt");File file srcFile.get…

flashbackup闪回数据库

某时间删除了一个表 SQL> delete test1;50000 rows deleted.1、关闭数据库&#xff0c;启动到mount状态&#xff08;abort数据库能快速关闭&#xff0c;但是可能会丢数据&#xff09; SQL> shutdown abort; ORACLE instance shut down. SQL> startup mount;2、基于时间…

策略模式java 用例_java策略模式简单用例

运用java策略模式一个小程序/****/package Strategy;import java.util.Arrays;/*** author HuangRong* Funtion 定义策略*/public interface ComputablesStra {public abstract void printForm();}/****/package Strategy;/*** author HuangRong* Function 为策略模式中的上下文…

LeetCode 2057. 值相等的最小索引

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;返回 nums 中满足 i mod 10 nums[i] 的最小下标 i &#xff1b;如果不存在这样的下标&#xff0c;返回 -1 。 x mod y 表示 x 除以 y 的 余数 。 示例 1&#xff1a; 输入&#xff1a;num…

.net String.Format数字格式化输出

内容转载自&#xff1a;http://www.cnblogs.com/lqb/archive/2008/08/04/1259498.html 前面内容这个做的总结的很全&#xff0c;今后有新增的我继续往后补充。请留意我增加的绿色字体&#xff0c;有惊喜哟&#xff01;-:) int a 12345678; //格式为sring输出 Label1.Text str…

java a 2_Java A* 算法(2)

if(Arrays.binarySearch(isPass,map[fy][fx]) 0) { Node node2 new Node(fx, fy); node2.parent node; node2.G node.G 10; //采用manhattan启发算法 两点中的直角 距离 node2.H Math.abs((ex-fxey-fy)if(Arrays.binarySearch(isPass,map[fy][fx]) > 0)  {Node node…

LeetCode 2058. 找出临界点之间的最小和最大距离(链表)

文章目录1. 题目2. 解题1. 题目 链表中的 临界点 定义为一个 局部极大值点 或 局部极小值点 。 如果当前节点的值 严格大于 前一个节点和后一个节点&#xff0c;那么这个节点就是一个 局部极大值点 。 如果当前节点的值 严格小于 前一个节点和后一个节点&#xff0c;那么这个…

LeetCode 2059. 转化数字的最小运算数(BFS)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;该数组由 互不相同 的数字组成。另给你两个整数 start 和 goal 。 整数 x 的值最开始设为 start &#xff0c;你打算执行一些运算使 x 转化为 goal 。你可以对数字 x 重复执行下述运算&…

java8 supplyasync_java – 为什么CompletableFuture.supplyAsync成功随...

我是Java 8中lambda和异步代码的新手.我不断得到一些奇怪的结果……我有以下代码&#xff1a;import java.util.concurrent.CompletableFuture;public class Program {public static void main(String[] args) {for (int i 0; i < 100; i) {String test "Test_"…

又是一年国庆假期最后一天

时间过的真的很快啊&#xff0c;美好的日子已经快过完了&#xff0c;在长假的最后一天&#xff0c;有很多的朋友可能都会抱怨&#xff0c;不想上班了&#xff0c;好想在好好的玩玩。开开心心的过完了假期的前六天&#xff0c;当突然被告知明天就是最后一天&#xff0c;你会有什…

LeetCode 2062. 统计字符串中的元音子字符串

文章目录1. 题目2. 解题1. 题目 子字符串 是字符串中的一个连续&#xff08;非空&#xff09;的字符序列。 元音子字符串 是 仅 由元音&#xff08;a、e、i、o 和 u&#xff09;组成的一个子字符串&#xff0c;且必须包含 全部五种 元音。 给你一个字符串 word &#xff0c;…