我有std::vector<std::string> WorldData.它包含我的文件的每一行,名为world.txt(有opengl 3d协调),它看起来像:
-3.0 0.0 -3.0 0.0 6.0
-3.0 0.0 3.0 0.0 0.0
3.0 0.0 3.0 6.0 0.0 etc.
Run Code Online (Sandbox Code Playgroud)
我怎么能将这些字符串转换为浮点变量?当我尝试:
scanf(WorldData[i].c_str(), "%f %f %f %f %f", &x, &y, &z, &tX, &tY);
or
scanf(WorldData[i].c_str(), "%f %f %f %f %f\n", &x, &y, &z, &tX, &tY);
Run Code Online (Sandbox Code Playgroud)
变量x,y,z,tX,tY得到一些奇怪的数字.
今晚看到Python的一些意外行为.为什么以下打印出"不相等"?!
num = 1.00
num -= .95
nickel = .05
if nickel != num:
print 'not equal'
else:
print 'equal'
Run Code Online (Sandbox Code Playgroud) 我有这些陈述:
data SL a = SR (Integer -> (a, Integer))
deriving(Show)
instance Monad SL where
return k = SR (\st -> (k, st))
xx::SL Integer
xx = return 4
Run Code Online (Sandbox Code Playgroud)
然后我做:
let SR f = xx
Run Code Online (Sandbox Code Playgroud)
我现在有:
xx :: SL Integer
f :: Integer -> (Integer, Integer)
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么.也许我错过了语法的含义let DATACONSTRUCTOR ...
你能帮我吗?
只是出于好奇而问这个问题.
我正在使用irb终端,并试图从浮动中减去浮动.
我发现
irb(main):003:0> 49.4 - 0.1
Run Code Online (Sandbox Code Playgroud)
给我
=> 49.3
Run Code Online (Sandbox Code Playgroud)
但如果我这样做
irb(main):003:0> 49.3 - 0.1
Run Code Online (Sandbox Code Playgroud)
然后我明白了
=> 49.199999999999996
Run Code Online (Sandbox Code Playgroud)
这是否与irb的实施有关?我的意思是为什么49.3 - 0.1给出了这样的表示.(具体到49.3 - 0.1,我从来没有得到过这个)
我用irb 0.9.6
我有以下代码,
float a = 0.7;
if(0.7 > a)
printf("Hi\n");
else
printf("Hello\n"); //Line1
Run Code Online (Sandbox Code Playgroud)
和
float a = 0.98;
if(0.98 > a)
printf("Hi\n");
else
printf("Hello\n"); //Line2
Run Code Online (Sandbox Code Playgroud)
这里line1输出Hi但Line2输出Hello.我假设有一个关于双常数和浮点数的标准,即它们中的任何一个在评估时会变大.但是这两个代码澄清了我,当双常数变大并且其他时候浮点变大时,情况可能会出现.这背后有没有四舍五入的问题?如果是,请解释我.我非常需要这个明确的...感谢提前
我正在尝试填充一个文本框,其数量可以除以50并且没有分数.
示例:金额 - > 52353.85应显示 - > 52350
金额 - > 1229.68应显示 - > 1200
我该如何修改该值?
提前致谢.
System.out.println((26.55f/3f));
Run Code Online (Sandbox Code Playgroud)
要么
System.out.println((float)( (float)26.55 / (float)3.0 ));
Run Code Online (Sandbox Code Playgroud)
等等
返回结果8.849999.不应该8.85.
任何人都可以解释这一点,还是我们都应该避免使用花车?
我有这个代码:
N = 10
for i in range(1,N):
P[i,i] = (i/N) + pow((1-i/N),2)
Run Code Online (Sandbox Code Playgroud)
但我的除法运算正在向下舍入到最接近的整数.
如何指示Python进行浮点除法?
好的,我有这个奇怪的问题.当我尝试更改浮点值时,它不会更改该值.这就是我试图改变它的方式:
static float float1ID;
public void void1() {
if(boolean1) {
float1ID = 56F;
} else if(!boolean1) {
float1ID = 0F;
}
}
Run Code Online (Sandbox Code Playgroud)
完整代码(更改变量,以保持简单.):
static boolean diamond = false;
static boolean iron = false;
static boolean fuel = false;
static boolean gold = false;
static boolean redstone = false;
static boolean circuit = false;
static boolean danger = false;
static boolean valuable = false;
static boolean nether = false;
static boolean farm = false;
static boolean home = false;
static boolean …Run Code Online (Sandbox Code Playgroud) 我正在做一些大数除法(long/long加倍,而int/int浮动).但是当结果包含"E"时,我碰到了问题.我知道我们可以在显示时使用NumberFormat进行格式化,但这不是我的意思.只是希望分区的结果不涉及"E",即只需将其四舍五入到最适合空间的float/double.
有人有个主意吗?
我有一个号码
例如:
8183
Run Code Online (Sandbox Code Playgroud)
我需要的是将它转换为浮点数 -
例如8183
(8183).toFixed(2);
Run Code Online (Sandbox Code Playgroud)
会回来的
8183.00
Run Code Online (Sandbox Code Playgroud)
但我需要进一步截断它,所以最终的数字将是
8.18
Run Code Online (Sandbox Code Playgroud)
所以基本上我需要使用只有2位小数的浮点数.我尝试使用Math.floor和ceil,但无法弄明白!
我需要将3个字符("123")的char*字符串转换为带有两个小数位(1.23)的浮点数.