我需要显示精确的小数点。
float value =26/5;
当我记录值时,它显示5.00000我需要它完全是5.2。我也使用双值没什么帮助。
答案 0 :(得分:4)
float value = 26.0 / 5.0;
会这样做。在您的代码中,数字被视为整数,因此除法提供整数结果。
答案 1 :(得分:4)
在float value = 26/5;
中,分子和分母都是整数,因此将使用整数数学,整数数学通过向下舍入产生一个整数,然后转换为浮点数。
创建一个或两个浮点值,您将得到一个浮点结果:
float value = 26/5.0;
或
float value = 26.0/5;
或
float value = 26.0/5.0;
或者您可以使用强制转换而不是更改数字浮点数:
float value = (float)26/(float)5;
请注意,26.0 / 5.0并不完全产生5.2因为5.2不能用浮点精确表示,该值将类似于5.19999980926513671875。这可能会出现问题。
示例:
float value = 26.0/5.0;
NSLog(@"value: %.20f", value);
输出:
值:5.19999980926513671875
虽然精度较低的显示器看起来是正确的:
NSLog(@"value: %f", value);
输出:
值:5.200000
如果您只想显示两个小数点:
NSLog(@"value: %.2f", value);
输出:
值:5.20
答案 2 :(得分:1)
只需在数字后添加.0
float value =26.0/5.0;
将作为float工作,没有.0它们被视为整数。
答案 3 :(得分:0)
当您需要记录或打印时,请使用:[[NSNumber numberWithFloat:someFloatValue] stringValue];
用户"返回true"说,值是准确的,但如果你想要精确的小数字打印或记录为字符串,你可以使用上面的代码。
并且不要忘记使用26.0 / 5.0,这样你就得到一个小数。