La función Byte.From devuelve un número entero de 8 bits sin signo a partir de un valor.
Byte.From(
value as any,
optional culture as nullable text,
optional roundingMode as nullable number
) as nullable number
- value: valor a convertir
- culture: (opcional) cadena de texto con información sobre la configuración regional a aplicar
- roundingMode: (opcional) modo de redondeo
value deberá representar un número (entero o real) mayor o igual a 0 y menor que 255.5. Si se trata de un número entero, la función devuelve el mismo número. Si es un número real con parte fraccionaria no nula, se redondea según el criterio que se indique (por defecto se aplica el criterio RoundingMode.ToEven). Si value es de otro tipo, se intenta convertir a número según los criterios determinados por la función Number.FromText, devolviéndose un error en el caso de que esta conversión no sea posible.
Por último, si value es un NULL, la función también devuelve un NULL.
Véase en Number.Round información sobre el redondeo.
Si el valor a convertir es un número entero, se devuelve el mismo valor:
Byte.From(5)
5
Si es un número real, se redondea al entero más próximo:
Byte.From(17.34)
17
En el caso de que el redondeo pueda realizarse a dos valores distintos, se aplica el criterio que se indique. Por defecto, al entero par más próximo:
Byte.From(17.5)
18
Si, en el ejemplo anterior, establecemos que el redondeo se realice hacia el cero...
Byte.From(17.5, null, RoundingMode.TowardZero)
17
Si el valor a transformar es una cadena de texto, se convierte a valor numérico (si es posible):
Byte.From("16")
16
Si el texto representa un número con una cierta configuración regional, podría no ser bien interpretado. En mi caso, la configuración regional es la correspondiente a "Español - España", usando la coma como separador decimal. En estas circunstancias, un texto como "145.23" no sería interpretado como un número y la función devolvería un error:
Byte.From("145.23")
Error
Si especificamos la configuración regional adecuada, la función será capaz de interpretar el texto y devolver el resultado correcto:
Byte.From("145.23", "en-US")
145