python какой тут очевидный способ для вывода float с переменной точнос
вывод то нормуль работает
>>> c = "%.2f"
>>> print (c % a)
1.12
а то что ты спрашиваешь это как преобразовать число в строку
http://lmgtfy.com/?q=python+int+to+string
>>> print "%."+str(b)+"f") % a)
1.12
спасибо. разбираюсь.
>>> "%.*f" % (3, 0.12345)
'0.123'
>>> "%.*f" % (2, 0.12345)
'0.12'
я бы даже сказал оно такое простое, что я даже не мог представить, что так бывает.
спасибо.
я бы даже сказал оно такое простое, что я даже не мог представить, что так бывает.питон
питонОкстись, это в стандартном printf есть.
$ cat test.c
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%.*f\n", 2, 0.12345);
printf("%.*f\n", 3, 0.12345);
return 0;
}
$ gcc -otest test.c
$ ./test
0.12
0.123
upd
шелл
$ printf "%.*s\n" 2 "abcde"
ab
$ printf "%.*s\n" 3 "abcde"
abc
Окстись, это в стандартном printf есть.в стандартном? или в gcc-шном?
в стандартном? или в gcc-шном?Хз. но ман вот что пишет
Unix V7 defines the three routines printf fprintf sprintf and has the flag -, the width or precision *, the length modifier l, ...
в стандартном? или в gcc-шном?В cl-ном тоже есть
в стандартном? или в gcc-шном?в стандартном.
вот, например:
- The Single UNIX ® Specification, Version 2
- IEEE Std 1003.1, 2004 Edition
- ISO C 99, раздел 7.19.6.1 "The fprintf function", 4 параграф
Оставить комментарий
Phoenix
Почему не работает моё "решение" я понимаю. Я его привожу, чтобы показать, что я хочу.>>> a = 1.123
>>> a
1.123
>>> print ("%.2f" % a)
1.12
>>> b = 2
>>> print ("%."+b+"f"%a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>>
Возможно есть какая-то функция, но вот dir(a) ничего не показал.