C++ 如何将数字转换为0.mynumber
如何将数字转换为0。号码是多少 所以 还是什么?C++ 如何将数字转换为0.mynumber,c++,numbers,converter,C++,Numbers,Converter,如何将数字转换为0。号码是多少 所以 还是什么? 我该怎么做呢?这很难看,但我认为这是可行的: float a = i; while( a >= 1.0f ) a /= 10.0f; int i = 50; std::stringstream ss; ss << "0." << i; float a; ss >> a; inti=50; std::stringstream-ss; ss a; 这很难看,但我认为
我该怎么做呢?这很难看,但我认为这是可行的:
float a = i;
while( a >= 1.0f ) a /= 10.0f;
int i = 50;
std::stringstream ss;
ss << "0." << i;
float a;
ss >> a;
inti=50;
std::stringstream-ss;
ss a;
这很难看,但我认为这是可行的:
int i = 50;
std::stringstream ss;
ss << "0." << i;
float a;
ss >> a;
inti=50;
std::stringstream-ss;
ss a;
关于:
#include <cmath>
#include <initializer_list>
#include <iostream>
float zero_dot( float m ) {
return m / pow( 10.0, floor( log( m ) / log( 10.0 ) ) + 1 );
}
int main() {
for( auto const & it: { 5.0, 50.0, 500.0, 5509.0, 1.0 } ) {
std::cout << it << ": " << zero_dot( it ) << std::endl;
}
return 0;
}
计算不使用任何循环。关于:
#include <cmath>
#include <initializer_list>
#include <iostream>
float zero_dot( float m ) {
return m / pow( 10.0, floor( log( m ) / log( 10.0 ) ) + 1 );
}
int main() {
for( auto const & it: { 5.0, 50.0, 500.0, 5509.0, 1.0 } ) {
std::cout << it << ": " << zero_dot( it ) << std::endl;
}
return 0;
}
计算不使用任何循环。对于
i
的某些值,您是否希望能够得到a=0.01
或a=0.001
?对于i
的某些值,您是否希望得到a==0.50
?您是否希望得到a=0.01
或a=0.001
?您是否希望得到a==0.50
?对不起,米斯拉正在接近我。您应该具有/=10.0f
。请注意小数点和f
后缀,以表示float
常量。@BarşUşaklı谢谢。(我真的不应该一边回答问题,一边专注于其他事情:-P)@DanielFrey这不是每个人都在做的吗佩索里,但米斯拉正在接近我。您应该具有/=10.0f
。请注意小数点和f
后缀,以表示float
常量。@BarşUşaklı谢谢。(我真的不应该一边回答问题,一边专注于其他事情:-P)@DanielFrey这不是每个人都在做的吗呸。。。任何时候,当一个数字操作涉及到进出字符串时,我都会畏缩。有可能是一些更优雅的位转换,但这是我想出了更快的黑客。呵呵。。。任何时候,当一个数字操作涉及到进出字符串时,我都会畏缩。可能有一些更优雅的东西与位转移,但这是我想出了更快的黑客。我觉得这是一个有点太复杂的小项目:)@ShakeryGO:你能告诉我什么是复杂的这里?这是Daniel Freys答案的封闭形式。(还有:为什么小项目比大项目“简单”?)我觉得这个小项目有点太复杂了:)@ShakeryGO:你能告诉我这里有什么复杂的地方吗?这是Daniel Freys答案的封闭形式。(还有:为什么小项目比大项目“简单”)