- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想格式化(圆形) float ( double )数字,让我们说 2 个有效数字,例如:
1 => 1
11 => 11
111 => 110
119 => 120
0.11 => 0.11
0.00011 => 0.00011
0.000111 => 0.00011
所以任意精度保持不变
我希望它已经内置了一些不错的功能,但目前还没有找到
我被指向了How to round down to the nearest significant figure in php ,这很接近但不适用于 N 位有效数字,我不确定它对 0.000XXX 数字有何作用
最佳答案
要将一个数字四舍五入到 n 个有效数字,您需要找到该数字的大小的 10 次方,然后从 n 中减去它。
这适用于简单的舍入:
function sigFig($value, $digits)
{
if ($value == 0) {
$decimalPlaces = $digits - 1;
} elseif ($value < 0) {
$decimalPlaces = $digits - floor(log10($value * -1)) - 1;
} else {
$decimalPlaces = $digits - floor(log10($value)) - 1;
}
$answer = round($value, $decimalPlaces);
return $answer;
}
这将给出以下内容:
0.0001234567 返回 0.0001235
123456.7 返回 123500
但是,诸如 10 到四位有效数字之类的值应严格表示为 10.00,以表示已知值的精度。
如果这是所需的输出,您可以使用以下命令:
function sigFig($value, $digits)
{
if ($value == 0) {
$decimalPlaces = $digits - 1;
} elseif ($value < 0) {
$decimalPlaces = $digits - floor(log10($value * -1)) - 1;
} else {
$decimalPlaces = $digits - floor(log10($value)) - 1;
}
$answer = ($decimalPlaces > 0) ?
number_format($value, $decimalPlaces) : round($value, $decimalPlaces);
return $answer;
}
现在1显示为1.000
关于php - 在 PHP 中将数字格式化为 N 位有效数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37618679/
如何在 C++ 中进行涉及有效数字的数学运算?我希望它能正确处理化学和物理实验的测量数据。一个例子:65/5 = 10。我需要去掉不需要的小数位并将一些数字替换为 0。 谢谢! 最佳答案 这应该可以满
这个任务看起来很简单 - 在输入时我得到测试数量 (numOfTests),然后是两个数字 (downBorder, upBorder) 和我必须找出这些数字(downBorder、upBorder)
如果我有 double (234.004223) 等,我想在 C# 中将其四舍五入为 x 位有效数字。 到目前为止,我只能找到舍入到 x 位小数的方法,但是如果数字中有任何 0,这只会删除精度。 例如
我是一名优秀的程序员,十分优秀!