- Форматирование числа в html
- Допускает ли число типа ввода десятичную дробь?
- Можно ли иметь десятичные пиксели?
- Как сделать счетчик в CSS?
- Как вводить числа в HTML?
- Как добавить запятую к числу в HTML?
- Syntax
- Interpolation
- Examples
- Valid numbers
- Invalid numbers
- Specifications
- Форматирование чисел (десятичных знаков, разделителей тысяч и т. Д.) С помощью CSS
- 9 ответов
- zanarmstrong / d3formatting.css
Форматирование числа в html
Дано число,и задача состоит в том,чтобы отформатировать номер HTML-элемента в виде валюты,используя CSS и немного JavaScript.Невозможно выполнить задачу с помощью чистого CSS.Немного JavaScript необходимо для разбора числа,чтобы добавить запятые.
Допускает ли число типа ввода десятичную дробь?
Можно ли иметь десятичные пиксели?
У вас не может быть доли пикселя, но для всех других измерений, которые в конечном итоге преобразуются в пиксели, вы можете использовать десятичные разряды. Однако могут возникать ошибки округления, когда при округлении используется больше пикселей, чем 100 % (например, 33 %, 34 % и 33 % вместе при определенных размерах экрана могут заполнять один пиксель более 100 %).
Как сделать счетчик в CSS?
Чтобы использовать счетчик, его необходимо сначала инициализировать значением со свойством counter-reset. Затем значение счетчика может быть увеличено или уменьшено с помощью свойства counter-increment. Текущее значение счетчика отображается с помощью функции counter() или counters(), обычно в свойстве содержимого псевдоэлемента.
Как вводить числа в HTML?
определяет поле для ввода числа. Используйте следующие атрибуты для указания ограничений: max — указывает максимально допустимое значение.
Как добавить запятую к числу в HTML?
Метод format()этого объекта можно использовать для возврата строки с числом в указанной локали и параметрах форматирования.Это отформатирует число с запятыми в тысячных долях и вернет строку с отформатированным числом.
CSS , тип данные представляет собой число, являющийся или целое число или число с дробным компонентом.
Syntax
Interpolation
При анимации значения типа данных CSS интерполируются как реальные числа с плавающей запятой. Скорость интерполяции определяется функцией синхронизации, связанной с анимацией.
Examples
Valid numbers
12 A raw integer> is also a number>. 4.01 Positive fraction -456.8 Negative fraction 0.0 Zero +0.0 Zero, with a leading + -0.0 Zero, with a leading - .60 Fractional number without a leading zero 10e3 Scientific notation -3.4e-2 Complicated scientific notation
Invalid numbers
12. Decimal points must be followed by at least one digit. +-12.2 Only one leading +/- is allowed. 12.1.1 Only one decimal point is allowed.
Specifications
Форматирование чисел (десятичных знаков, разделителей тысяч и т. Д.) С помощью CSS
Можно ли форматировать числа с помощью CSS? То есть: десятичные разряды, десятичный разделитель, разделитель тысяч и т.д.
Вы не можете, но вы действительно должны быть в состоянии. В конце концов, 50 000, 50000 или 50 000,00 — это все те же «данные», они просто представлены по-другому, для чего и нужен CSS.
@MrMisterMan: Есть некоторые идеи, которые здесь можно найти : wiki.csswg.org/ideas/content-formatting#numbers Я, вероятно, буду преследоваться и обвиняться в цитировании «спецификаций» и получении надежд всех. И мне любопытно узнать, как здесь будет обрабатываться нечисловой текст.
Хотя я согласен с тем, что это было бы неплохо, число встроено в локализованную в противном случае страницу. То есть остальная часть страницы — английский, китайский или любой другой язык, и цифры должны соответствовать IMO этой локализации. Почему они должны быть локализованы отдельно от остальной части страницы .
9 ответов
Ну, для любых чисел в Javascript я использую следующий:
var a = "1222333444555666777888999"; a = a.replace(new RegExp("^(\\d)(\\d)", "g"), "$1 $2").replace(/(\d)+?/gi, "$1 ").trim();
и если вам нужно использовать любой другой разделитель в качестве запятой, например:
var sep = ","; a = a.replace(/\s/g, sep);
function numberFormat(_number, _sep) < _number = typeof _number != "undefined" && _number >0 ? _number : ""; _number = _number.replace(new RegExp("^(\\d)(\\d)", "g"), "$1 $2").replace(/(\d)+?/gi, "$1 ").trim(); if(typeof _sep != "undefined" && _sep != " ") < _number = _number.replace(/\s/g, _sep); >return _number; >
Мне это нравится. Но мне нужно было также преобразовать число в строку перед заменой. Вы не можете сделать замену на номер.
перед вызовом _number.replace мы должны убедиться, что это строка типа _number = typeof _number != «undefined» && _number > 0 ? String(_number) : «»; или иначе вы получите ошибку _number.replace не определен или не является функцией
Рабочая группа CSS опубликовала проект в Форматирование содержимого в 2008 году. Но ничего нового прямо сейчас.
Вероятно, лучший способ сделать это — это комбо для установки диапазона с классом, обозначающим ваше форматирование, а затем использовать JQuery.each для форматирования на пролетах при загрузке DOM.
Нет, вы должны использовать javascript, как только он находится в DOM, или отформатируйте его с помощью серверной части сервера (PHP/ruby /python и т.д.)
Формат чисел является предметом контента, таким как текст контента или другие нотационные проблемы (например, нотации даты, которые зависят от языка). Таким образом, форматирование чисел является локализацией и должно обрабатываться при создании контента. Выполнение этого в JavaScript имеет смысл для той части контента, которая генерируется JavaScript.
Я полностью согласен с этим. Вот почему я написал это в своем ответе. Наверное, следовало бы больше подчеркнуть это.
Это может быть либо контент, либо презентация. Возьмем CSS rtl , который показывает тот же контент по-другому: должен ли он также обрабатываться на стороне сервера?
Не ответ, а интерес. Несколько лет назад я отправил предложение
Я использую функцию PHP number_format() и Узкое No- break Space ( ). Он часто используется как недвусмысленный разделитель тысяч.
echo number_format(200000, 0, "", " ");
Поскольку у IE8 есть некоторые проблемы с отображением узкого пространства без разрыва, я изменил его для SPAN
echo "".number_format(200000, 0, "", " ")."";
К сожалению, это на стороне сервера, есть небольшое попадание в процессор, нам нужна возможность редактировать маску html / css. Одевание и рендеринг должны быть на стороне клиента, если мы не обслуживаем PDF?
Я не думаю, что ты можешь. Вы можете использовать number_format(), если вы кодируете в PHP. И другие языки программирования также имеют функцию форматирования чисел.
Вы не можете использовать CSS для этой цели. Я рекомендую использовать JavaScript, если он применим. Взгляните на это для получения дополнительной информации: JavaScript-эквивалент printf/string.format
Также, как сказал Петр, вы можете справиться с этим на стороне сервера, но это полностью зависит от вашего сценария.
Вы можете использовать библиотеку тегов Jstl для форматирования для страниц JSP
JSP Page //import the jstl lib Formatted Number (1): " type="currency"/>
Formatted Number (2): " />
Formatted Number (3): " />
Formatted Number (4): " />
Formatted Number (5): " />
Formatted Number (6): " />
Formatted Number (7): " />
Formatted Number (8): " />
Отформатированный номер (1): £ 120,000.23
Отформатированный номер (2): 000.231
Отформатированный номер (3): 120 000.231
Отформатированный номер (4): 120000.231
Отформатированный номер (5): 023%
Отформатированный номер (6): 12 000 023 0900000000%
Отформатированный номер (7): 023%
Отформатированный номер (8): 120E3
zanarmstrong / d3formatting.css
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
body |
margin : 20 px 0 px 0 px 50 px ; |
> |
. formattext |
text-align : right; |
> |
. formatresult |
text-align : left; |
padding-left : 40 px ; |
> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// define variables |
var formatlist = [ «» , «s» , «,%» , «+,%» , «,.1%» , «.4r» , «.4f» , «.4n» , «.3n» , «,d» , «,.0f» , «.0f» , «.0e» , «.1e» ] ; |
var userNum = document . getElementById ( «userNum» ) ; |
var colorLow = ‘blue’ |
var colorHigh = ‘red’ |
// add listener to call formatter function when user changes the number |
userNum . addEventListener ( «input» , |
function ( e ) |
myFormats . changeNumber ( userNum . value ) ; |
> , |
false |
) ; |
// need way to update list |
formatSpecifier . addEventListener ( «change» , |
function ( e ) |
myFormats . addToList ( formatSpecifier . value ) ; |
> , |
false |
) ; |
// create a little color scale function to make the output look pretty |
function setColorScale ( max ) |
return d3 . scale . linear ( ) |
. domain ( [ 0 , max ] ) |
. interpolate ( d3 . interpolateRgb ) |
. range ( [ colorLow , colorHigh ] ) |
> |
// construct code/text pairs from list of formats I could use |
var constructFormatObject = function ( mylist ) |
var types = [ ] ; |
mylist . forEach ( function ( d ) |
types . push ( |
code : d3 . format ( d ) , |
text : ‘d3.format(«‘ + d + ‘»)’ |
> ) |
> ) |
return types |
> |
var myFormats = new ShowFormats ( |
formatlist , |
0 ) ; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// set up showformats constructor |
ShowFormats = function ( formatList , number ) |
// list of format specifiers to show |
this . formatList = formatList ; |
this . formatObject = constructFormatObject ( formatList ) ; |
this . dataset = Array . apply ( 0 , |
Array ( this . formatObject . length ) ) . map ( function ( x , y ) |
return y ; |
> ) ; ; |
// number to format |
this . number = number ; |
this . colorScale = setColorScale ( this . dataset . length ) |
var self = this ; |
// set up defaults |
this . selection = d3 . select ( «tbody» ) . selectAll ( «tr» ) |
. data ( this . dataset ) |
. enter ( ) |
. append ( «tr» ) ; |
this . selection |
. append ( «td» ) |
. text ( function ( d ) |
return self . formatObject [ d ] . text ; |
> ) |
. style ( «color» , function ( d ) |
return self . colorScale ( d ) |
> ) |
. attr ( «class» , «formattext» ) ; |
this . selection |
. append ( «td» ) |
. text ( function ( d ) |
return self . formatObject [ d ] . code ( self . number ) ; |
> ) |
. style ( «color» , function ( d ) |
return self . colorScale ( d ) |
> ) |
. attr ( «class» , «formatresult» ) ; |
> |
ShowFormats . prototype . changeNumber = function ( number ) |
this . number = number ; |
this . updateFormats ( ) ; |
> |
ShowFormats . prototype . addToList = function ( specifier ) |
this . formatList . unshift ( specifier ) |
this . formatObject = constructFormatObject ( this . formatList ) ; |
// update dataset array w/ new length |
this . dataset = Array . apply ( 0 , |
Array ( this . formatObject . length ) ) . map ( function ( x , y ) |
return y ; |
> ) ; ; |
this . updateFormats ( ) ; |
> |
ShowFormats . prototype . tdtextStyling = function ( selection ) |
selection . text ( function ( d ) |
return self . formatObject [ d ] . text ; |
> ) |
. style ( «color» , function ( d ) |
return self . colorScale ( d ) |
> ) |
. attr ( «class» , «formattext» ) ; |
> |
ShowFormats . prototype . tdcodeStyling = function ( selection ) |
selection . text ( function ( d ) |
return self . formatObject [ d ] . code ( self . number ) ; |
> ) |
. style ( «color» , function ( d ) |
return self . colorScale ( d ) |
> ) |
. attr ( «class» , «formatresult» ) ; |
> |
ShowFormats . prototype . updateFormats = function ( ) |
self = this ; |
// bind with current dataset |
this . selection = d3 . selectAll ( «tbody» ) . selectAll ( «tr» ) |
. data ( self . dataset ) ; |
// enter elements |
var k = this . selection . enter ( ) . append ( «tr» ) |
k . append ( «td» ) |
. call ( self . tdtextStyling ) ; |
k . append ( «td» ) |
. call ( self . tdcodeStyling ) ; |
// update elements |
this . selection |
. selectAll ( «td» ) |
. text ( function ( d , i ) |
if ( i == 0 ) |
return self . formatObject [ d ] . text ; |
> |
if ( i == 1 ) |
return self . formatObject [ d ] . code ( self . number ) ; |
> |
> ) |
. style ( «color» , function ( d ) |
return self . colorScale ( d ) |
> ) |
. attr ( «class» , function ( d , i ) |
if ( i == 0 ) |
return «formattext» |
> else |
return «formatresult» |
> |
> ) |
> |