有没有一种简单的方法可以将我的 Decimal 值(例如 62.25)转换为像“62 小时:15 分钟”这样的返回字符串?我一直在查看与此类似的几篇文章(Decimal Hour into Time?),但即使是说它们适用于大于 24 小时周期的数字的建议也不起作用。
我的代码:
import random
randomlist = []
for i in range(0,100):
n = random.randint(1.0,2.0)
randomlist.append(n)
print(randomlist)
Run Code Online (Sandbox Code Playgroud)
从上面的代码:
n = random.randint(1.0,2.0)
Run Code Online (Sandbox Code Playgroud)
这是正确的
但当
n = random.randint(0.1,1.0)
n = random.randint(0.001,1.001)
Run Code Online (Sandbox Code Playgroud)
给出错误
> Traceback (most recent call last): File
> "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py",
> line 31, in <module>
> start(fakepyfile,mainpyfile) File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py",
> line 30, in start
> exec(open(mainpyfile).read(), __main__.__dict__) File "<string>", line 4, in <module> File
> "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/random.py",
> line 248, in randint
> return self.randrange(a, b+1) File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/random.py",
> line 212, in randrange
> …
Run Code Online (Sandbox Code Playgroud) 如何将C++字符串(仅包含“0”或“1”)直接根据其字面值转换为二进制数据?
例如,我有一个字符串str
,它的值是0010010
。现在我想将此字符串转换为二进制形式变量,或等于0b0010010
(is 18
) 的十进制变量。
int main() {
string str_1 = "001";
string str_2 = "0010";
string str = str_1 + str_2;
cout << str << endl;
int i = stoi(str);
double d = stod(str);
cout << i << " and " << d << endl;
}
Run Code Online (Sandbox Code Playgroud)
我尝试stoi
过stod
,但它们都不起作用。他们都将二进制0b0010010
视为十进制10010
。那么我怎样才能达到这个要求呢?多谢!
我在python中生成或获取小数值时遇到问题.现在,我使用float(),但它返回.0而不是.00 ...
>>> d = 10
>>> float(d)
10.0
>>>
Run Code Online (Sandbox Code Playgroud)
如何设置以.00返回的十进制值?
>>10.00
Run Code Online (Sandbox Code Playgroud)
提前致谢 ...
我正在尝试检查变量内的数字的十进制数是否大于50或小于50。然后根据其是否大于或等于50,将十进制数四舍五入为99,如果较小则将其四舍五入为00 。
这是我的一段代码:
public function roundPrice($price)
{
return round( (ceil($price) - 0.01), 2);
}
Run Code Online (Sandbox Code Playgroud)
它使所有十进制数舍入到99。我只需要将50或更高的小数点四舍五入到99,而49或更少的小数则变为00。
我如何在PHP中实现呢?非常感谢,我被困在这里,不知道怎么做。
我正在解析数据列表.数据是一个值列表,它们非常大,有许多小数点.例如:
-3.21446735874, 48.4505248207, 0.
-3.21476825075, 48.4504325609, 0.
Run Code Online (Sandbox Code Playgroud)
我需要能够在计算中使用这些数字没有蟒蛇减少每个数字的精确度和它的大小(float(x)
和int(x)
显然不工作!).我已经尝试过该decimal
模块,但显然由于导入功能不正常而无法再使用该模块.我更喜欢解决方案是独立于平台的(请仅使用默认的python模块!).
我有一个非常基本的C#函数,它对小数进行乘法计算.然后我在控制台中显示结果.我还将要显示的小数位数限制为两个.一个非常基本的形式如下所示:
int a = 5;
int b = 10;
result = a*b;
Console.Write("Result = " + result.ToString("0.##"));
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是始终显示两位小数.所以在这种情况下我希望它显示Result = 50.00而不仅仅是Result = 50.
我试图将一个数字舍入到2个decemals,它给了我整数!
var 4 = 10.99 + 89.78899999
total = number(a) + number(b);
Run Code Online (Sandbox Code Playgroud)
这是我目前拥有的:
Math.round(total, 2); // this gives me 101 I need it to show 100.78
Run Code Online (Sandbox Code Playgroud)
这样做的诀窍是什么?
我无法分割小数点后的十进制值,我尝试使用拆分的一些可能的答案,但它是不可实现的.请建议一些可能的解决方案实现这一点
纬度:13.8989989988
我需要的解决方案是:13.898和剩余值998998分开
可能重复:
如何在Java中将数字舍入到n个小数位
我有像"1234.9678"这样的Double值.我想只返回一个小数,没有舍入或上限.
我用这种方式,但它返回"1234.96"
public double roundTwoDecimals(double d) {
DecimalFormat twoDForm = new DecimalFormat("#.##");
return Double.valueOf(twoDForm.format(d)); }
Run Code Online (Sandbox Code Playgroud)
我只想要"1234.9",
我甚至用这种方式......但没有运气......任何人都可以帮忙吗?
double d = 1234.9678;
int decimalPlace = 1;
BigDecimal bd = new BigDecimal( Double.toString(d) );
bd = bd.setScale( decimalPlace, BigDecimal.ROUND_HALF_UP );
System.out.println( bd.doubleValue() );
Run Code Online (Sandbox Code Playgroud)