这个不是题解,没有解题过程
第一、第二例错误,其它例没错,最后发现是输出精度问题
对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀
0
0,不要输出后缀
0
0。
以下做法并不符合题意,但这道题的核心难度并不是实现一个数字修约的函数...和自己和解吧,差不多算了
- 数学库
Math.Round(1.2345678d, 6)
科学上是4舍6入5凑偶。很遗憾,c#的处理小数的方法都是科学的,没找到四舍五入的。
- 格式化字符串
string aa1 = 1.23456789d.ToString("R");
string aa2 = 1.23456789d.ToString("f6");
string aa3 = 1.23456789d.ToString("g6");
string aa4 = 1.23456789d.ToString("0.000000");
1.23456789, 1.234568, 1.23457, 1.234568
这道题...g6过了
- 邪道做法
double value = 1.23456789d;
long p = value * 10000000;
因为BMI大于24才要输出值,小数点前必定两位值
value.ToString("0.0000");
我看到有人这样过了,我自己没试